Skip to content

Integrate an inverse hyperbolic function by parts against its logarithm - #1969

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
by-parts-against-an-inverse-hyperbolic-function-as-its-logarithm
Oct 20, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
by-parts-against-an-inverse-hyperbolic-function-as-its-logarithm

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

The parser writes each inverse hyperbolic function as a logarithm, ln(A + sqrt(A^2 + k)) or ln((1 + u)/(1 - u)). Differentiated as written, that is a quotient with the root in both parts, which the search never brought down to the root alone. The rule writes the derivative as the algebraic function it is, A'/sqrt(A^2 + k) or 2 u'/(1 - u^2), and integrates P + Q L as ∫P + G L - ∫G L', with G the antiderivative of Q.

It declines where:

  • Q is a polynomial, which is already answered;
  • Q is not rational: beside a root, the rules for the inverse function answer, and the root's integral asked here first took their time;
  • G holds L itself;
  • the answer would hold on part of the line only;
  • a factor below Q's bar divides the function's own quadratic, as in atanh(a x)/(1 - a^2 x^2)^3, which the substitution under the function answers;
  • an artanh's argument is not linear.

Each limit came from a measured loss. Validated by chain four times, on 8a1ef454, branch against master:

  1. Early, unrestricted: 116 problems master answers timed out.
  2. With Q rational: one wrong answer, the master defect fixed in Take an interval's size without squaring, so a size past the doubles does not agree #1966, and two losses.
  3. With the quadratic exclusion: clean.
Run Problems Master Branch
Pocket: Rubi's 7.x, every third solved problem 1,502 1,384 solved 1,395 solved
Family 1, 40 a file 1,381 1,362 1,362
Family 0, whole 1,814 1,789 1,789
Families 2 to 8, sampled 2,410 2,362 2,362

Re-run alone on both builds, 10 problems go from timed out to answered: Rubi's 7.1.4:20, 7.2.4:621/629/630, 7.5.1:165, 7.5.2:14/15, 7.6.1:151/152 and 7.6.2:13. None of master's answers is lost, and no run had a wrong answer.

In that chain, five 7.3.7 problems that master declines in 1–11 s timed out instead, all atanh(x sqrt(e)/sqrt(d + e x^2))/x^n. The last limit, a linear argument for the artanh, was added for them after the chain. Probed on this rebased branch, those problems answer, through #1952's rule, and so do all ten gains and both earlier losses: 13 of 13.

A sweep of the 55 rows with one linear inverse hyperbolic function and a whole power of a quadratic below the bar: master answers 49, the branch 55.

ByPartsAgainstAnInverseHyperbolicFunctionAsItsLogarithmIntegralTest includes 7.6.1:130 and both losses. BREAKING-CHANGES.md has the entry.

Part of #233.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

The parser writes each inverse hyperbolic function as a logarithm,
ln(A + sqrt(A^2 + k)) or ln((1 + u)/(1 - u)). Differentiated as written, that is
a quotient with the root in both parts, which the search never brought down to
the root alone. Its derivative is now written as the algebraic function it is,
A'/sqrt(A^2 + k) or 2 u'/(1 - u^2), and P + Q L is integrated as
integral P + G L - integral G L', with G the antiderivative of Q. Rubi's
x (a + b acosh(c x))/(d + e x^2)^2, x^3 (a + b asech(c x))/(d + e x^2)^3,
asech(a + b x)/x^3 and acsch(a + b x)/x^3 were past the budget.

The rule declines where:
- Q is a polynomial, which is answered already, or not rational: beside a root,
  the rules for the inverse function answer, and the root's integral asked
  here took their time;
- G holds L itself;
- the answer holds on part of the line only;
- a factor below Q's bar divides the function's own quadratic, as in
  atanh(a x)/(1 - a^2 x^2)^3, which the substitution under the function answers;
- an artanh's argument is not linear.

Part of #233.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet Rafael-SOWNet added this to the 2.6.0 milestone Oct 20, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit 3d3a99b into master Oct 20, 2026
40 of 43 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 20, 2026
@Rafael-SOWNet
Rafael-SOWNet deleted the by-parts-against-an-inverse-hyperbolic-function-as-its-logarithm branch October 29, 2026 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant